home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xa;
-
- import com.extensibility.app.UI;
- import com.extensibility.rock.AutoCompleteDocument;
- import com.extensibility.rock.RDialog;
- import com.extensibility.rock.Screen;
- import com.extensibility.util.Debug;
- import com.extensibility.xml.BaseDeclaration;
- import com.extensibility.xml.ElementDeclaration;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Dialog;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import java.awt.Window;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.BorderFactory;
- import javax.swing.Icon;
- import javax.swing.JButton;
- import javax.swing.JComponent;
- import javax.swing.JDialog;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- import javax.swing.UIManager;
- import javax.swing.border.CompoundBorder;
- import javax.swing.border.EmptyBorder;
-
- public class InstanceDocDialog extends RDialog {
- static final int CANCEL_BUTTON = 1;
- static final int OK_BUTTON = 0;
- JLabel art;
- JTextArea message = UI.createTextArea(false);
- JTextField[] options;
- JLabel[] label;
- JButton[] button;
- int dismissalBtn = -1;
- Vector declsToEdit;
-
- public InstanceDocDialog(Frame var1, Vector var2) {
- super(var1, true);
- ((Dialog)this).setTitle(UI.getString("dialog.instancedoc.title"));
- this.prepare(UIManager.getIcon("itydoc.gif"), UI.getString("dialog.instance.message"), new String[]{UI.getString("dialog.ok"), UI.getString("dialog.cancel")}, var2);
- }
-
- protected int getTextFieldCount() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- ++var1;
- }
-
- return var1;
- }
-
- protected JTextField getTextField(int var1) {
- return var1 < this.options.length ? this.options[var1] : null;
- }
-
- public String getField(int var1) {
- return this.getTextField(var1) == null ? null : this.getTextField(var1).getText();
- }
-
- public Vector getValues() {
- Vector var1 = new Vector();
-
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- var1.addElement(this.getField(var2));
- }
-
- return var1;
- }
-
- public void setAutoComplete(int var1, Enumeration var2) {
- JTextField var3 = this.getTextField(var1);
- AutoCompleteDocument var4 = new AutoCompleteDocument(var3, var2);
- this.getTextField(var1).setDocument(var4);
- }
-
- public int getDismissalButton() {
- return this.dismissalBtn;
- }
-
- protected int getOptionsLength() {
- return this.options != null ? this.options.length : -1;
- }
-
- protected int getOptionsGridHeight() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < this.options.length; ++var2) {
- ++var1;
- }
-
- return var1;
- }
-
- protected void prepare(Icon var1, String var2, String[] var3, Vector var4) {
- this.declsToEdit = var4;
- Font var5 = (new JLabel()).getFont();
- int var6 = this.declsToEdit.size();
- this.label = new JLabel[var6];
-
- for(int var7 = 0; var7 < var6; ++var7) {
- BaseDeclaration var8 = (BaseDeclaration)this.declsToEdit.elementAt(var7);
- this.label[var7] = new JLabel(var8.getName());
- if (var8 instanceof ElementDeclaration) {
- this.label[var7].setFont(new Font(var5.getName(), 1, var5.getSize()));
- }
- }
-
- this.options = new JTextField[var6];
-
- for(int var17 = 0; var17 < var6; ++var17) {
- String var9 = ((BaseDeclaration)this.declsToEdit.elementAt(var17)).getSampleData();
- if (var9 == null) {
- this.options[var17] = null;
- } else {
- this.options[var17] = UI.createTextField(var9);
- }
- }
-
- int var18 = var3.length;
-
- while(var18 > 0) {
- --var18;
- if (var3[var18] != null) {
- break;
- }
- }
-
- ++var18;
- this.button = new JButton[var18];
-
- for(int var10 = 0; var10 < var18; ++var10) {
- this.button[var10] = new JButton(var3[var10]);
- this.button[var10].addActionListener(new 1(var10, this));
- this.button[var10].setMnemonic(var3[var10].charAt(0));
- }
-
- ((JDialog)this).getContentPane().setLayout(new BorderLayout());
- this.art = new JLabel(var1);
- this.message.setFont(var5);
- this.message.setBackground(((JDialog)this).getContentPane().getBackground());
- this.message.setText(var2);
- this.message.setBorder(BorderFactory.createEmptyBorder(8, 8, 14, 8));
- ((JDialog)this).getContentPane().add(this.message, "North");
- JPanel var11 = new JPanel();
- ((Container)var11).setLayout(new GridBagLayout());
- GridBagConstraints var12 = new GridBagConstraints();
- var12.insets = new Insets(8, 16, 0, 16);
-
- for(int var13 = 0; var13 < (var6 > 512 ? 512 : var6); ++var13) {
- var12.fill = 0;
- var12.anchor = 17;
- var12.gridheight = 1;
- if (this.options[var13] == null) {
- var12.weightx = (double)5.0F;
- var12.gridwidth = 0;
- } else {
- var12.weightx = (double)1.0F;
- var12.gridwidth = -1;
- }
-
- ((Container)var11).add(this.label[var13], var12);
- if (this.options[var13] != null) {
- var12.weightx = (double)4.0F;
- var12.gridwidth = 0;
- var12.fill = 2;
- ((Container)var11).add(this.options[var13], var12);
- }
- }
-
- 2 var14 = new 2((InstanceDocDialog)null, var11);
- ((JScrollPane)var14).setViewportBorder(new EmptyBorder(0, 0, 8, 0));
- ((JComponent)var14).setBorder(new CompoundBorder(new EmptyBorder(0, 8, 0, 8), ((JComponent)var14).getBorder()));
- ((JDialog)this).getContentPane().add(var14, "Center");
- JPanel var15 = new JPanel(new FlowLayout(2, 16, 12));
-
- for(int var16 = 0; var16 < this.button.length; ++var16) {
- ((Container)var15).add(this.button[var16]);
- }
-
- ((JDialog)this).getContentPane().add(var15, "South");
- ((Window)this).pack();
- Screen.centerInScreen(this);
- }
-
- protected void doButton(int var1) {
- this.dismissalBtn = var1;
- if (this.dismissalBtn == 0) {
- Vector var2 = this.getValues();
- Debug.assert(var2.size() == this.declsToEdit.size(), "Declarations and their values don't match.");
-
- for(int var3 = 0; var3 < this.declsToEdit.size(); ++var3) {
- BaseDeclaration var4 = (BaseDeclaration)this.declsToEdit.elementAt(var3);
- String var5 = (String)var2.elementAt(var3);
- if ((var4.getSampleData() != null || var5 != null) && (var4.getSampleData() == null || var5 == null || !var4.getSampleData().equals(var5))) {
- var4.setSampleData(var5);
- }
- }
- }
-
- ((Window)this).dispose();
- }
-
- public void addNotify() {
- super.addNotify();
- if (this.options.length == 0) {
- this.button[0].requestFocus();
- }
-
- ((JDialog)this).getRootPane().requestFocus();
- ((RDialog)this).installEscape(this.button[this.button.length - 1]);
- ((RDialog)this).installDefault(this.button[0]);
- int var1 = this.getTextFieldCount();
-
- while(true) {
- --var1;
- if (var1 < 0) {
- return;
- }
-
- if (this.getTextField(var1) != null) {
- ((RDialog)this).installDefault(this.getTextField(var1));
- }
- }
- }
-
- public boolean userCanceled() {
- return this.getDismissalButton() == 1;
- }
- }
-